package config;

import com.fasterxml.jackson.databind.ObjectMapper;
import handler.ExceptionMsgHandler;
import handler.JarLocation;
import po.Data;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class ReadAndWriteJson {

    private static final String BASE_PATH = JarLocation.confPath;

    public static Data readJson(String jsonName) {
        try {
            // 创建 ObjectMapper 对象
            ObjectMapper mapper = new ObjectMapper();
            // 从文件中读取 JSON 数据并映射为 Java 对象
            File file = new File(BASE_PATH + jsonName + ".json");
            return mapper.readValue(file, Data.class);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static boolean writeJson(Data data, String jsonName) {
        try {
            // 配置文件的路径
            String configFilePath = BASE_PATH + jsonName;
            // 创建File对象
            File configFile = new File(configFilePath);
            // 检查目录是否存在
            if (!configFile.getParentFile().exists()) {
                if (!configFile.getParentFile().mkdirs()) {
                    System.out.println("创建目录失败: " + configFile.getParentFile().getAbsolutePath());
                    return false; // 目录创建失败，返回
                }
            }
            // 创建 ObjectMapper 对象
            ObjectMapper mapper = new ObjectMapper();
            // 将 Person 对象转换为 JSON 字符串并保存到文件
            mapper.writeValue(new File(BASE_PATH + jsonName + ".json"), data);

            return true;

        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
    }
}